﻿//++
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
// Module Name:
//
//  IPresenceProvider.cs
//    
// Abstract:
//
//  This interface abstracts the concept of querying for a user's presence.
//  The purpose of this abstraction is to aid in unit and functional testing
//  of the dispatcher service.
//  
//--

using System;

namespace Microsoft.EnhancedReminders.Dispatcher
{
    /// <summary>
    /// Interfact representing a service that can obtain the presence information for
    /// a specific user.
    /// </summary>
    public interface IPresenceProvider
    {
        /// <summary>
        /// Asynchronously begins looking up the presence information for a given
        /// user.
        /// </summary>
        /// <param name="notification">The NotificationItem that this presence-check is occuring for.</param>
        /// <param name="target">The address of the target to look up.</param>
        void GetPresenceAsync(NotificationItem notification, string target);

        /// <summary>
        /// Event handler that is fired off when a presence lookup has completed.
        /// </summary>
        event EventHandler<PresenceObtainedEventArgs> GetPresenceCompleted;
    }
}
